﻿namespace EntityAccessInterfaces;

/// <summary>
/// 地图注记服务接口
/// </summary>
public interface IAnnotationServices
{
    /// <summary>
    /// 获取地图标绘包含的所有地图注记
    /// </summary>
    /// <param name="draftID">要获取的地图标绘ID</param>
    /// <returns>所有地图注记列表</returns>
    Task<GetResult<List<Annotation>>> GetRelativeAnnotationsAsync(int draftID);

    /// <summary>
    /// 添加地图注记
    /// </summary>
    /// <param name="geometries">要添加的地图注记列表</param>
    /// <returns>若添加成功，则返回所有注记的ID列表。否则返回null</returns>
    Task<AddResult<int>> AddAnnotationsAsync(IEnumerable<Annotation> annotations);

    /// <summary>
    /// 删除地图注记
    /// </summary>
    /// <param name="geometryIDs">要删除的地图注记ID列表</param>
    /// <returns>操作结果</returns>
    Task<DeleteResult> DeleteAnnotationsAsync(IEnumerable<int> annotationIDs);

    /// <summary>
    /// 获取地图注记
    /// </summary>
    /// <param name="geometryIDs">要获取的地图注记ID列表</param>
    /// <returns>查询结果</returns>
    Task<GetResult<List<Annotation>>> GetAnnotationsAsync(IEnumerable<int> annotationIDs);
}